//
//  SJFileDataGainStorageTool.h
//  Init
//
//  Created by zhaoshijie on 30/12/2017.
//  Copyright © 2017 zhaoshijie. All rights reserved.
//

#import <Foundation/Foundation.h>

//  格式类型
typedef enum : NSUInteger {
    SJFileDataGainStorageTool_FileDataFormatType_Default = 0,   //  文件不带数据头，二进制数据存储
    SJFileDataGainStorageTool_FileDataFormatType_System = 1,    //  文件数据带系统头，json数据存储
} SJFileDataGainStorageTool_FileDataFormatType;


//  json数据的类型
typedef enum : NSUInteger {
    SJFileDataGainStorageTool_FileDataJsonType_ArrayJson = 0,       //  数组类型
    SJFileDataGainStorageTool_FileDataJsonType_DictionaryJson = 1,  //  字典类型
} SJFileDataGainStorageTool_FileDataJsonType;

@interface SJFileDataGainStorageTool : NSObject


/**
 写入数据到文件,默认文件路径：Caches
 
 @param json json数据
 @param fileName 文件名称
 @param fileDataFormatType 格式类型
 @param successBlcok 成功回调
 @param failBlock 失败回掉
 */
+ (void)fileDataStorageInDefaultPathCachesWithJson:(id)json
                                          FileName:(NSString * )fileName
                                fileDataFormatType:(SJFileDataGainStorageTool_FileDataFormatType)fileDataFormatType
                                      successBlcok:(void(^)(void))successBlcok
                                         failBlock:(void(^)(void))failBlock;
/**
 写入数据到文件
 
 @param json json数据
 @param filePath 路径
 @param fileDataFormatType 格式类型
 @param successBlcok 成功回调
 @param failBlock 失败回调
 */
+ (void)fileDataStorageWithJson:(id)json
                       filePath:(NSString * )filePath
             fileDataFormatType:(SJFileDataGainStorageTool_FileDataFormatType)fileDataFormatType
                   successBlcok:(void(^)(void))successBlcok
                      failBlock:(void(^)(void))failBlock;


/**
 读取文件中的数据，默认文件路径：Caches
 
 @param fileName 文件名称
 @param fileDataFormatType 格式类型     if  SJFileDataGainStorageTool_FileDataFormatType_Default    jsonType没意义
 @param jsonType json数据类型，array or dic
 @return json数据
 */
+ (id)fileDataGainInDefaultPathCachesWithFileName:(NSString *)fileName
                               fileDataFormatType:(SJFileDataGainStorageTool_FileDataFormatType)fileDataFormatType
                                 fileDataGainType:(SJFileDataGainStorageTool_FileDataJsonType)jsonType;
/**
 读取文件中的数据
 
 @param filePath 文件路径
 @param fileDataFormatType 格式类型     if  SJFileDataGainStorageTool_FileDataFormatType_Default    jsonType没意义
 @param jsonType json数据类型，array or dic
 @return json数据
 */
+ (id)fileDataGainWithFilePath:(NSString *)filePath
            fileDataFormatType:(SJFileDataGainStorageTool_FileDataFormatType)fileDataFormatType
              fileDataGainType:(SJFileDataGainStorageTool_FileDataJsonType)jsonType;


/**
 获取项目中的plist文件数据，array类型
 
 @param plistName 文件名称
 @return array类型的数据
 */
+ (id)fileDataGainPlistJSONArrayWithPlistName:(NSString *)plistName;


/**
 获取项目中的plist文件数据，dictionary类型
 
 @param plistName 文件名称
 @return dictionary类型的数据
 */
+ (id)fileDataGainPlistJSONDictionaryWithPlistName:(NSString *)plistName;


/**
 删除本地缓存数据       默认文件路径：Caches
 
 @param fileName 文件名称
 @param successBlcok 删除成功
 @param failBlock 删除失败
 */
+ (void)fileDataRemoveInDefaultPathCachesWithFileName:(NSString *)fileName
                                         successBlcok:(void(^)(void))successBlcok
                                            failBlock:(void(^)(void))failBlock;


/**
 删除本地缓存数据
 
 @param filePath 文件路径
 @param successBlcok 删除成功
 @param failBlock 删除失败
 */
+ (void)fileDataRemoveWithFilePath:(NSString *)filePath
                      successBlcok:(void(^)(void))successBlcok
                         failBlock:(void(^)(void))failBlock;





@end
